8b08c17f895270d4245e8213cb92d364f71a463b,sketches/src/main/java/com/yahoo/sketches/sampling/ReservoirItemsUnion.java,ReservoirItemsUnion,toByteArray,#ArrayOfItemsSerDe#Class#,268
Before Change
final Memory mem = new NativeMemory(outArr);
// build preLong
long pre0 = 0L;
pre0 = PreambleUtil.insertPreLongs(preLongs, pre0); // Byte 0
pre0 = PreambleUtil.insertSerVer(SER_VER, pre0); // Byte 1
pre0 = PreambleUtil.insertFamilyID(Family.RESERVOIR_UNION.getID(), pre0); // Byte 2
pre0 = (empty) ? PreambleUtil.insertFlags(EMPTY_FLAG_MASK, pre0)
: PreambleUtil.insertFlags(0, pre0); // Byte 3
pre0 = PreambleUtil.insertMaxK(maxK_, pre0); // Bytes 4-5
mem.putLong(0, pre0);
After Change
final byte[] gadgetBytes = (gadget_ != null ? gadget_.toByteArray(serDe, clazz) : null);
if (empty) {
preLongs = Family.RESERVOIR_UNION.getMinPreLongs();
outBytes = 8;
} else {
preLongs = Family.RESERVOIR_UNION.getMaxPreLongs();
outBytes = (preLongs << 3) + gadgetBytes.length; // for longs, we know the size
}
final byte[] outArr = new byte[outBytes];
final Memory mem = new NativeMemory(outArr);
final Object memObj = mem.array(); // may be null
final long memAddr = mem.getCumulativeOffset(0L);
// build preLong
PreambleUtil.insertPreLongs(memObj, memAddr, preLongs); // Byte 0
PreambleUtil.insertSerVer(memObj, memAddr, SER_VER); // Byte 1
PreambleUtil.insertFamilyID(memObj, memAddr, Family.RESERVOIR_UNION.getID()); // Byte 2
if (empty) {
PreambleUtil.insertFlags(memObj, memAddr, EMPTY_FLAG_MASK);
} else {
PreambleUtil.insertFlags(memObj, memAddr, 0); // Byte 3
}
PreambleUtil.insertMaxK(memObj, memAddr, maxK_); // Bytes 4-5